package fr.toto.settings.settingPanels;

import java.awt.Component;
import java.awt.Dimension;
import java.nio.file.Path;
import java.nio.file.Paths;

import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

import fr.toto.settings.defaultPanels.JAddTextButton;

public class PanelFormatSortie extends JPanel {
	
	private static final long serialVersionUID = -8717952806681828135L;
	private JTextField textField_1;
	private JLabel jlabelexemple;

	public PanelFormatSortie(String format) {

		
		textField_1 = new JTextField();
		textField_1.setMaximumSize(new Dimension(2147483647, 30));
		textField_1.setText(format);

		JLabel lblNewLabel = new JLabel("Format du fichier en sortie");
		lblNewLabel.setMaximumSize(new Dimension(10000, 20));
		lblNewLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
		
		JLabel lblUtiliserLesCodes = new JLabel("Utiliser les codes suivants :");
		lblUtiliserLesCodes.setMaximumSize(new Dimension(100000, 20));
		lblUtiliserLesCodes.setAlignmentX(Component.CENTER_ALIGNMENT);

		JAddTextButton panel_3 = new JAddTextButton("{SERIE}",
				"Affiche le nom de la série", textField_1);

		JAddTextButton panel_4 = new JAddTextButton("{SAISON:1}",
				"Affiche le numéro de la série", textField_1);

		JAddTextButton panel_5 = new JAddTextButton("{SAISON:2}",
				"Affiche le numéro de la série sur 2 chiffres", textField_1);

		JAddTextButton panel_6 = new JAddTextButton("{EPISODE:1}",
				"Affiche le numéro de l'épisode", textField_1);

		JAddTextButton panel_7 = new JAddTextButton("{EPISODE:2}",
				"Affiche le numéro de l'épisode sur 2 chiffres", textField_1);

		JAddTextButton panel_8 = new JAddTextButton("{GLOBAL:1}",
				"Affiche le numéro global de l'épisode", textField_1);

		JAddTextButton panel_9 = new JAddTextButton("{GLOBAL:2}",
				"Affiche le numéro global de l'épisode sur 2 chiffres",
				textField_1);

		JAddTextButton panel_10 = new JAddTextButton("{GLOBAL:3}",
				"Affiche le numéro global de l'épisode sur 3 chiffres",
				textField_1);

		JAddTextButton panel_11 = new JAddTextButton("{TITRE}",
				"Affiche le titre de l'épisode", textField_1);

		JLabel lblExemple = new JLabel("Exemple :");
		lblExemple.setMaximumSize(new Dimension(500000, 20));
		lblExemple.setAlignmentX(Component.CENTER_ALIGNMENT);

		JLabel lblNewLabel_2 = new JLabel(
				"Si vous téléchargez l'épisode de Doctor Who saison 2 episode 5");
		lblNewLabel_2.setMaximumSize(new Dimension(500000, 20));
		lblNewLabel_2.setAlignmentX(Component.CENTER_ALIGNMENT);

		JLabel lblNewLabel_3 = new JLabel(
				"L'épisode sera déplacer a l'enplacement siuvant :");
		lblNewLabel_3.setMaximumSize(new Dimension(500000, 20));
		lblNewLabel_3.setAlignmentX(Component.CENTER_ALIGNMENT);

		jlabelexemple = new JLabel(" ");
		jlabelexemple.setMaximumSize(new Dimension(500000, 20));
		jlabelexemple.setAlignmentX(Component.CENTER_ALIGNMENT);
		this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));

		
		this.add(lblNewLabel);
		this.add(textField_1);
		this.add(lblUtiliserLesCodes);
		this.add(panel_3);
		this.add(panel_4);
		this.add(panel_5);
		this.add(panel_6);
		this.add(panel_7);
		this.add(panel_8);
		this.add(panel_9);
		this.add(panel_10);
		this.add(panel_11);
		this.add(lblExemple);
		this.add(lblNewLabel_2);
		this.add(lblNewLabel_3);
		this.add(jlabelexemple);

		textField_1.addCaretListener(new CaretListener() {
			public void caretUpdate(CaretEvent arg0) {
				String t = textField_1.getText().replace("{SERIE}",
						"Doctor Who");
				t = t.replace("{SAISON:1}", "2");
				t = t.replace("{SAISON:2}", "02");
				t = t.replace("{EPISODE:1}", "5");
				t = t.replace("{EPISODE:2}", "05");
				t = t.replace("{GLOBAL:1}", "19");
				t = t.replace("{GLOBAL:2}", "19");
				t = t.replace("{GLOBAL:3}", "019");
				t = t.replace("{TITRE}", "Rise of the Cybermen (1)");

				Path p = Paths.get(t+ ".avi");

				jlabelexemple.setText(p.toString());
			}
		});
	}
	
	public String FormatSortie() {
		return textField_1.getText();
	}


}
